﻿/*****************************************************
**Copyright(C), 2021-2022, Ciqtek Technology.
**Version:     dev
**Author:      MiPeng
**Date:        2022/07/05
**Description: 自定义复合控件基类，实现信号屏蔽等功能
*****************************************************/

#ifndef UIWIDGETBASE_H
#define UIWIDGETBASE_H

#include "../generalui_global.h"
#include "../GlobalUIDef.h"

#include <QWidget>

namespace GeneralUI {

	class GENERALUI_EXPORT UiWidgetBase : public QWidget
	{
		Q_OBJECT

	public:
		/**
		 * @brief  UiWidgetBase  构造函数
		 * @param  parent
		 * @return
		 */
		UiWidgetBase(QWidget *parent = nullptr) :QWidget(parent) { };

		/**
		 * @brief  ~UiWidgetBase  析构函数
		 * @return
		 */
		virtual ~UiWidgetBase() {};

	public:
		/**
		 * @brief  blockSignals  信号屏蔽
		 * @param  block
		 * @return bool
		 */
		virtual bool blockSignals(bool block) { return __super::blockSignals(block); };

		/**
		 * @brief  signalsBlocked  信号屏蔽状态
		 * @return bool
		 */
		virtual bool signalsBlocked() { return __super::signalsBlocked(); };

		/**
		 * @brief  setFocus  设置焦点
		 * @param  reason
		 * @return void
		 */
		virtual void setFocus(Qt::FocusReason reason) { __super::setFocus(reason); };

		/**
		 * @brief  hasFocus  焦点判断
		 * @return bool
		 */
		virtual bool hasFocus() { return __super::hasFocus(); };

		/**
		 * @brief  setEnabled  设置启用状态
		 * @param  isEnabled  启用
		 * @return bool
		 */
		virtual void setEnabled(bool isEnabled) { __super::setEnabled(isEnabled); };

		/**
		 * @brief  isEnabled  获取启用状态
		 * @return bool
		 */
		virtual bool isEnabled() { return __super::isEnabled(); };
	};

}//namespace OfUI

#endif // UIWIDGETBASE_H